The invention relates generally to three-dimensional solid modeling and more particularly to a system for recognizing holes in a solid model.
Solid Modeling
Solid modeling is a term that refers to a set of techniques that can be used to create and store computer based representations of physical objects. A number of techniques have evolved over the years for providing computer-based representations of three-dimensional parts. One of these techniques is Boundary Representation (B-rep).
A Boundary Representation (B-rep) model of a mechanical part consists of a set of xe2x80x9cfaces,xe2x80x9d xe2x80x9cedgesxe2x80x9d and xe2x80x9cvertices,xe2x80x9d which are connected together to form a topological structure of the part. By using such a representation, it is possible to evaluate many properties of the part from its computer model. These include the mass, the volume, the moments of inertia and. products of inertia. Additionally, such models enable computer-based analysis of stress and strains in the part under different loading conditions. B-rep based computer models can also be xe2x80x9ccutxe2x80x9d and examined in a manner similar to an actual part. For these reasons, a B-rep model of a part is known as a xe2x80x9csolidxe2x80x9d model. Other representations of solid models are also known in the art.
Software based on solid modeling is widely used by engineers to create models of parts that eventually have to be manufactured. Software such as SolidWorks(trademark) (SolidWorks Inc.), Pro/Engineer(trademark) (Parametric Technology), I-DEAS(trademark) (Structural Dynamics Research Corp.) and Mechanical Desktop(trademark) (AutoDesk) are examples of solid modeling software.
Importance of Holes
Holes invariably exist in almost all engineering parts and perform many important functions. Some of these functions are as follows: holes may be used to bolt or screw the parts together in an assembly; they may be used as oil holes through which oil or lubricant flows into machine interiors, or they may provide a conduit through which other liquid or gas passes. In many parts, holes constitute a significant percentage of features present in the part. FIG. 1 illustrates a part with complex and interacting holes.
Holes are of interest to engineers during all stages of the design-to-manufacturing cycle. While editing a part model, designers may be interested in modifying hole parameters such as diameter and depth. In the analysis stage, an engineer may prefer to ignore some holes since they are not expected to contribute significantly to stresses and strains in the part. During manufacturing, planning holes governs the selection of some of the manufacturing processes, the machine tools and the cutting tools and even the material from which a part will be made. Moreover, information such as hole type, hole axis, and hole parameters can govern the exact manufacturing sequence and the selection of machining parameters.
In the absence of explicit hole information, it is difficult and cumbersome to modify part models and generate the information that is needed for manufacturing. If information related to holes can be deduced automatically from a computer based representation (model) of the part, many tasks of the design-to-manufacturing cycle can be simplified, or even automated.
Solid modeling software provides many methods for creating the models and design engineers may use a combination of such methods for modeling holes. For example, holes may be modeled using at least the following two distinct techniques:
1. Define a cross section and extrude it along a line segment, with a negative volume attribute, to create a hole. This method is illustrated in FIG. 2.
2. Define a cross section and revolve it about a line segment, with a negative volume attribute, to create a hole. This method is illustrated in FIG. 3.
Due to the existence of multiple modeling methods, solid modeling systems do not guarantee that hole information will be easily and explicitly available to engineers in a form that can be used to automate tasks of the design-to-manufacture processes. This is a major hurdle in achieving the goal of automating most tasks of the design-to-manufacture cycle.
This invention addresses this problem and provides means of automatically recognizing hole information from B-rep solid models and also provides tools for selectively deleting the recognized holes.
The invention is a method implemented by a computer program, and a computer running the same, for recognizing complex holes in solid modelsxe2x80x94irrespective of their creation method. In addition to recognizing individual holes, a method according to the invention can also recognize a sequence of connected holes (a chain), detect interactions between hole chains, and delete the holesxe2x80x94if required. The invention comprises several software modules which operate on boundary representation solid models and which run on a computer. The modules may be implemented in any programming language, such as C or C++, and may use local operators from known geometric modeling kernels.
A hole recognition software module receives a boundary representation from, for example, one of the solid modeling programs mentioned above or any other source capable of providing a standardized data structure for describing solids. The module identifies all closed surfaces (e.g., conical, torroidal, or cylindrical faces) and maps any holes interconnected by those faces. More specifically, each face of the boundary representation data is traversed, and any faces that include known closed surfaces, are noted. Since the axis of each closed face is known (derived from the boundary representation data structures), adjacent faces are also examined for other closed surfaces along the same axis. By propagating along an axis in both directions, hole chains can be identified. Each hole can then be characterized according to its axis, radius, diameter and other relevant information. This information is in turn stored as a separate data structure in addition to the original boundary representation. After hole chains are identified, it is also possible to identify interactions between such hole chains. Two hole chains interact if a hole belonging to one chain opens into a hole belonging to another chain. Such hole interaction information is also generated and stored as a separate data structure in addition to the original boundary representation.
Advantageously, a hole modification software module permits manipulation of the recognized holes and hole chains. This module uses the hole chain and hole chain interaction information and facilitates complete deletion of sets of interacting hole chains. Deletion of interacting hole chains results in a simple outside boundary surface map of the original structure. These hole modifications can then be used to create a new boundary representation containing any changes to the original structure, or any temporary modifications such as hole suppression. FIG. 4 shows a solid model that is obtained after suppressing holes in the solid model shown in FIG. 1.
The hole recognition and suppression results from the present invention have a wide range of useful applications. For example, hole data may be used to automatically generate instructions for drilling holes, to selectively delete holes to simplify finite element analysis or to greatly simplify operations such as hole movement or hole resizing.